package Futbol_Liga;
/**
 * Partidu batean parte hartzen duten etxeko eta bisitari taldeak eta bertan burututako jarduera zerrenda agertuko da. 
 * Partiduaren emaitza gordeko da baita ere.
 * @author Txantxangorriak
 *
 */
import java.util.ArrayList;
import java.util.Random;


public class Partidua {

	private Taldea etxekoTaldea;
	private Taldea bisitariTaldea;
	private JardueraZerrenda jarduerak;
	
	/**
	 * metodo eraikitzailea
	 * @param pEtxe
	 * @param pBisitari
	 */
	public Partidua(Taldea pEtxe, Taldea pBisitari) {
		etxekoTaldea=pEtxe;
		bisitariTaldea=pBisitari;
		jarduerak=new JardueraZerrenda();
		
	}

	/**
	 * Etxeko taldea bueltatuko du metodo honek
	 * @return Taldea
	 */
	public Taldea getEtxekoTaldea() {
		return etxekoTaldea;
	}
	/**
	 * Metodo honekin etxeko taldea zein den zehaztuko da
	 * @param etxekoTaldea
	 */
	public void setEtxekoTaldea(Taldea etxekoTaldea) {
		this.etxekoTaldea = etxekoTaldea;
	}
	/**
	 * Bisitari taldea bueltatuko du metodo honek
	 * @return Taldea
	 */
	public Taldea getBisitariTaldea() {
		return bisitariTaldea;
	}
	/**
	 * Metodo honekin bisitari taldea zein den zehaztuko da
	 * @param bisitariTaldea
	 */
	public void setBisitariTaldea(Taldea bisitariTaldea) {
		this.bisitariTaldea = bisitariTaldea;
	}
	/**
	 * Jarduera zerrenda bueltatuko da metodo honekin
	 * @return JardueraZerrenda
	 */
	public JardueraZerrenda getJarduerak() {
		return jarduerak;
	}
	/**
	 * Jarduera zerrenda zehaztuko da metodo honekin
	 * @param jarduerak
	 */
	public void setJarduerak(JardueraZerrenda jarduerak) {
		this.jarduerak = jarduerak;
	}
	/**
	 * Metodo honekin jokalari baten golen kopurua lortuko da
	 * @param jokalariak
	 * @param golak
	 */
	public void lortuJokalarienGolak(ArrayList<Jokalaria> jokalariak, ArrayList<Integer> golak) {
		
			jarduerak.lortuJokalarienGolak(jokalariak, golak);
	}
	/**
	 * Metodo honekin, ligaren simulazioa egingo da hasieratu prozesuan
	 */
	public void simulazioaEgin() {
	
		int minutua, jokalari;
		Gola gola;
		Txartela txar;
		boolean penalti, gorria;
		JokalariZerrenda jzE=etxekoTaldea.getJokalariak();
		JokalariZerrenda jzK=bisitariTaldea.getJokalariak();
		
		Random aleatorio = new Random();
		
		int golakE=aleatorio.nextInt(6)+1;
		for(int i=1; i<golakE;i++ ){
			 minutua=aleatorio.nextInt(91);
			 jokalari= aleatorio.nextInt(jzE.size());
			 penalti=aleatorio.nextBoolean();
			 gola = new Gola( minutua, penalti, jzE.get(jokalari));
			jarduerak.gehituJarduera(gola);
		}
		
		int golakK=aleatorio.nextInt(6)+1;
	
		for(int i=1; i<golakK;i++ ){
			 minutua=aleatorio.nextInt(91);
			 jokalari= aleatorio.nextInt(jzK.size());
			penalti=aleatorio.nextBoolean();
			 gola = new Gola( minutua, penalti, jzK.get(jokalari));
			jarduerak.gehituJarduera(gola);
		}
		
		
		int txartelakE=aleatorio.nextInt(6)+1;
		
		for(int i=1; i<txartelakE;i++ ){
			 minutua=aleatorio.nextInt(91);
			 jokalari= aleatorio.nextInt(jzE.size());
			 gorria=aleatorio.nextBoolean();
			 txar = new Txartela( minutua, jzE.get(jokalari), gorria);
			jarduerak.gehituJarduera(txar);
		}
		
		int txartelakK=aleatorio.nextInt(6)+1;
		
		for(int i=1; i<txartelakK;i++ ){
			minutua=aleatorio.nextInt(91);
			jokalari= aleatorio.nextInt(jzK.size());
			gorria=aleatorio.nextBoolean();
			txar = new Txartela( minutua, jzK.get(jokalari), gorria);
			jarduerak.gehituJarduera(txar);
		}
		
		if(golakE>golakK){
			etxekoTaldea.puntuazioaEguneratu(3);
			
		//	etxe irabazi
		}
		else if(golakE<golakK){
			bisitariTaldea.puntuazioaEguneratu(3);
		//	kanpo irabazi
		
		}
		else{
			etxekoTaldea.puntuazioaEguneratu(1);
			bisitariTaldea.puntuazioaEguneratu(1);
		//	enpate
			
		}
		
	}
	/**
	 * Jardunaldi bateko kiniela bueltatzen du
	 * @return String
	 */
	public String kiniela() {
		String emaitza;
		if(getEtxeGolKop()>getBisiGolKop()){
			emaitza="1";
		}
		else if(getEtxeGolKop()<getBisiGolKop()){
			emaitza="2";
		}
		else{
			emaitza="X";
		}
		String kiniela=etxekoTaldea.getIzena()+ " - " + bisitariTaldea.getIzena() + ": "+ emaitza;
		return kiniela;
	}
	
	/**
	 * Etxekoen Partidu honetako gol kopurua esango digu
	 * @return int
	 */
	
	public int getEtxeGolKop(){
		int golak=jarduerak.taldeaGolakZenbatu(etxekoTaldea.getIzena());
		return golak;
		
	}
	/**
	 * Bisitarien Partidu honetako gol kopurua esango digu
	 * @return int
	 */
	public int getBisiGolKop(){
		int golak=jarduerak.taldeaGolakZenbatu(bisitariTaldea.getIzena());
		return golak;
		
	}
		
	
}
